package cn.thinkluck.pattern.interpreter;

import lombok.extern.slf4j.Slf4j;

import java.util.HashMap;
import java.util.Map;

/**
 * 解释器模式
 * @Author liutao
 * @DateTime 2024/8/4 下午4:25
 */
@Slf4j
public class Main {
    public static void main(String[] args) {
        Expression a = new Var("a");
        Expression b = new Var("b");
        Expression c = new Var("c");
        Expression add = new Add(a, b);
        Expression sub = new Sub(b, c);

        //解释变量
        Map<String, Integer> var = new HashMap<String, Integer>();
        var.put("a", 10);
        var.put("b", 20);
        var.put("c", 30);
        //使用解释方法解释，打印解释结果
        log.info(String.valueOf(add.interpret(var)));
        log.info(String.valueOf(sub.interpret(var)));
    }
}
